<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./03-封装队列.js"></script>
</head>

<body>
    <script>

        // 面试题： 击鼓传花
        function passGame(nameList, num) {
            // 1. 创建一个队列结构
            var queue = new Queue();

            // 2. 将所有人都加入到这个队列中
            for (var i = 0; i < nameList.length; i++) {
                queue.enqueue(nameList[i])
            }

            // 3. 开始数数字
            // 不是num的时候，重新加入队列的末尾
            // 是num的时候，将其从队列中删除
            // 3.1 num数字之前的人重新放入队列的末尾
            while (queue.size() > 1) {
                for (var i = 0; i < num - 1; i++) {
                    queue.enqueue(queue.dequeue())
                }
                // 3.2 num 对应的这个人，直接从队列中删除
                queue.dequeue()
            }
            // 4. 获取剩下的那个人
            console.log(queue.size())
            var endName = queue.front()
            console.log('最终剩下的人:' + endName);

            return nameList.indexOf(endName)

        }
        // 测试击鼓传花
        var names = ['夏明', '李雷', '张腾', '高宁', '刘畅', '康芳'];
        console.log(passGame(names, 2));  // 刘畅  4

    </script>
</body>

</html>